# -*- coding: utf-8 -*-

# if-elif-else 条件判断
# 小明身高1.75，体重80.5kg。请根据BMI公式（体重除以身高的平方）帮小明计算他的BMI指数，并根据BMI指数：
def testIf():
    print("\n-----if-elif-else 条件判断-----\n")
    height = int(input("请输入身高（公分）:"))
    weight = float(input("请输入体重（公斤）:"))
    bmi = weight / height*height
    print('您的bmi是%d'%bmi)
    if bmi < 18.5:
        print("过轻")
    elif bmi >= 18.5 and bmi <25:
        print("正常")
    elif bmi >= 28 and bmi < 32:
        print("肥胖")
    else:
        print("严重肥胖")

# 循环
def testCycle():
    print("\n-----循环-----\n")
    print("range(101)生成0-100的整数序列，并求和：")
    sum = 0
    for x in range(101):
        sum = sum+x
    print("sum = ",sum)
    print("使用while循环：")
    sum = 0
    n = 99
    while n>0:
        sum = sum+n
        n = n-2
    print("sum = ",sum)
    print("利用循环依次对list总的每个名字打印出Hello,xxx!")
    L = ['Bart','Lisa','Adam']
    for name in L:
        print("Hello %s" % name)
# break : 在循环中，break语句可以提前退出循环
def testBreak():
    print("\n-----break-----\n")
    n = 1
    while n <= 10:
        if n > 9: # 当n=10时，条件满足，执行break
            break # break 语句会结束当前循环
        print(n)
        n = n+1
    print("End")

# continue : 在循环过程中，也可以通过continue语句，跳过当前的这次循环，直接开始下一次循环
def testContinue():
    print("\n-----continue-----\n")
    n = 0
    while n<10:
        n=n+1
        if n%2 == 0: # 如果n是偶数，执行continue
            continue # continue 会直接继续下一轮循环，不执行print
        print(n)

# dict: Python内置了字典：dict的支持，dict全称dictionary，在其他语言中也称为map，使用键-值（key-value）存储，具有极快的查找速度
# key必须是不可变对象。
def testDict():
    print("\n-----Dict字典-----\n")
    d = {"Michael":95,'Bob':75,"Tracy":85}
    print(d["Michael"])
    # 一是通过in判断key是否存在
    print("Nike is in d :",str("Nike" in d))
    # 二是通过dict提供的get()方法，如果key不存在，可以返回None
    print("Mary is None :",str(d.get("Mary")))
    # 二是通过dict提供的get()方法，如果key不存在，返回自己指定的value
    print("Mary is 35 :",str(d.get("Mary",-1)))
    # 要删除一个key，用pop(key)方法，对应的value也会从dict中删除
    d.pop("Bob")
    print(d)

# set ： set和dict类似，也是一组key的集合，但不存储value。由于key不能重复，所以，在set中，没有重复的key
def testSet():
    print("\n-----Set-----\n")
    s = set([1,2,3])
    print(s)
    # 自动过滤重复元素
    s = set([1,1,2,2,3,3])
    print("过滤重复元素：",s)
    # add(key)方法可以添加元素到set中，可以重复添加，但不会有效果
    s.add(100)
    s.add(1)
    print("add(key) :",s)
    # remove(key)方法可以删除元素
    s.remove(100)
    print("remove(key) :",s)

if __name__ == '__main__':
    testIf()
    testCycle()
    testBreak()
    testContinue()
    testDict()
    testSet()